Nacionales
Confirmados, Hospitalizados, Recuperados, Cuidados Intensivos & Fallecidos por Día
Confirmados vs Hospitalizados, Recuperados, Cuidados Intensivos, Fallecidos
De manera general, pareciera que a medida que se ha disparado la cantidad de Confirmados, los indicadores que más rápido crecen son los Hospitalizados & Recuperados
Una interpretación de lo anterior, podría ser que, a nivel Nacional, el hecho de que no haya tanta cercanía entre esas métricas y las de Fallecidos, podria ser un buen indicador, al menos en términos absolutos y ya faltará ver por Región y en términos relativos
Por Región
Confirmados vs Hospitalizados, Recuperados, Cuidados Intensivos, Fallecidos
Joining, by = "Region00"
A nivel Nacional, habíamos visto que, conforme crecían los Confirmados, los Hospitalizados & los Recuperados estaban prácticamente al mismo nivel, aunque ligéramente superior el primero
Sin embargo, es interesante ver, cómo por Región, los comportamientos varían de vez en vez
Por ejemplo, en Madrid, la tercera Región más poblada, esto se revierte, es decir, la cantidad de Hospitalizados parece ser significativamente inferior a la de Recuperados conforme aumentan las cantidades de Infectados
Confirmados por dìa & por Región
- En general, comportamientos muy parecidos entre las regiones, siendo
Madrid la Región con más infectados hasta un punto de 785,741 casos vs el segundo lugar que lo tiene Cataluña a pesar que ésta tiene al 16% de la población en comparación con el 14% que representa la que tiene a la capital del país.
Hospitalizados por dìa & por Región
En general, comportamientos muy parecidos entre las regiones, excepto Madrid.
Para el 30 de marzo, Madrid alentó el aumento en sus hospitalizados, al punto que para el 1 de abril empezó un descenso importante
Esto contrasta con el comportamiento en Cataluña, donde es evidente el aceleramiento en la cantidad de hospitalzados, a pesar que Madrid tiene más cantidad de infectados y menos población
Recuperados por dìa & por Región
- En general, comportamientos muy parecidos entre las regiones, siendo
Madrid la Región con más recuperados, probablente fruto de tener también más infectados
Cuidados Intensivos por dìa & por Región
- Comportamiento muy parecido al de Hospitalizados, lo cual hace sentido pues los que llegan a Cuidadis Intensivos tuvieron que haber pasado antes por seer hospitalizados
Fallecidos por dìa & por Región
- En general, comportamientos muy parecidos entre las regiones y también al observado en los Recuperados, siendo
Madrid la Región que presenta más casos de personas que degraciadamente han perdido la vida, probablemente fruto también de tener más infectados
LS0tCnRpdGxlOiAiRURBIC0gMDIiCnN1YnRpdGxlOiAiR3LDoWZpY2FzIDFlcmEgUGFydGU6IEFic29sdXRvcyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3IsaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGKQprbml0cjo6b3B0c19jaHVuayRzZXQoaW5jbHVkZSA9IFQpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShwbG90bHkpCmBgYAoKYGBge3J9CmlmKCFleGlzdHMoImFsbF9nYXRoZXIwMiIpKXsKICBhbGxfZ2F0aGVyMDI8LXJlYWRSRFMoImRhdGEvdGFzYXNfZGlhcmlhc194X3JlZ2lvbl8wMi5yZHMiKQp9CmFsbF9nYXRoZXIwMiU+JQogIG11dGF0ZSgKICAgIG1lc2RpYT1yb3VuZChtZXNkaWEsMikKICApCmBgYAoKIyBOYWNpb25hbGVzIHsudGFic2V0fQoKIyMgUG9ibGFjaW9uZXMgcG9yIFJlZ2nDs24KYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQphbGxfZ2F0aGVyMDJfcG9ibG5sPC1hbGxfZ2F0aGVyMDIlPiUKICAgICAgICAgICAgICAgZmlsdGVyKCFSZWdpb24laW4lIk5hY2lvbmFsIiklPiUKICAgICAgICAgICAgICAgZGlzdGluY3QoUmVnaW9uLFRPVEFMRVMpJT4lCiAgICAgICAgICAgICAgIGFycmFuZ2UoZGVzYyhUT1RBTEVTKSklPiUKICAgICAgICAgICAgICAgbXV0YXRlKAogICAgICAgICAgICAgICAgIFJlZ2lvbjAwPVJlZ2lvbiwKICAgICAgICAgICAgICAgICBSZWdpb249YXMuZmFjdG9yKAogICAgICAgICAgICAgICAgICAgcGFzdGUwKAogICAgICAgICAgICAgICAgICAgICBsZXR0ZXJzWzE6bnJvdyguKV0sIi4iLAogICAgICAgICAgICAgICAgICAgICBSZWdpb24pKSwKICAgICAgICAgICAgICAgICBwcm9wPXJvdW5kKFRPVEFMRVMvc3VtKFRPVEFMRVMpLDMpCiAgICAgICAgICAgICAgICkKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMl9wb2JsbmwsI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpLCAKICAgICAgICAgICAgIGFlcyh4PVJlZ2lvbiwgZ3JvdXA9MSkpCgpnZ3Bsb3RseSgKICAgIGdnMDAgKwogICAgICBnZW9tX2xpbmUoYWVzX3N0cmluZyh5PSJwcm9wIikpICsgCiAgICAgIHRoZW1lKAogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIGhqdXN0ID0gMSkjLAogICMgYXhpcy50ZXh0LnkgPSBlbGVtZW50X2JsYW5rKCkjLAogICMgYXhpcy50aWNrcyA9IGVsZW1lbnRfYmxhbmsoKQogICkrCiAgICAjIHNjYWxlX3lfZGlzY3JldGUoCiAgICBzY2FsZV95X2NvbnRpbnVvdXMoCiAgICBuYW1lPSIlIGRlIGxhIFBvYmxhY2nDs24gTmFjaW9uYWwiLAogICAgYnJlYWtzPXNlcSgwLC4yLC4wMjUpLAogICAgbGFiZWxzPXBhc3RlMChzZXEoMCwuMiwuMDI1KSoxMDAsIiAlIikKICApKwogICAgICBsYWJzKHRpdGxlID0gIlBvYmxhY2nDs24gcG9yIFJlZ2nDs24iKQopCmBgYAoKYGBge3J9CmFsbF9nYXRoZXIwMl9wb2JsbmwlPiUKICBtdXRhdGUoCiAgICBQb2JsYWNpb249Zm9ybWF0KFRPVEFMRVMsIG5zbWFsbD0xLCBiaWcubWFyaz0iLCIpLAogICAgUG9yY2VudGFqZT1wYXN0ZTAocHJvcCoxMDAsIiAlIikKICApJT4lCiAgc2VsZWN0KC1wcm9wLC1UT1RBTEVTLC1SZWdpb24pJT4lCiAgcmVuYW1lKFJlZ2lvbj1SZWdpb24wMCkKYGBgCgojIyBDb25maXJtYWRvcywgSG9zcGl0YWxpemFkb3MsIFJlY3VwZXJhZG9zLCBDdWlkYWRvcyBJbnRlbnNpdm9zICYgRmFsbGVjaWRvcyBwb3IgRMOtYQpgYGB7cixmaWcud2lkdGg9MTAsZmlnLmhlaWdodD03LGZpZy5hbGlnbj0nbGVmdCd9CnZhcnRtcDwtImNpZnJhcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBzZWxlY3QoLVRPVEFMRVMsLXN0YXJ0c193aXRoKCJ0YXNhXyIpLC1zdGFydHNfd2l0aCgiZ2FwXyIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXIoUmVnaW9uJWluJWMoIk5hY2lvbmFsIikpJT4lCiAgICAgICAgICAgICAgICMgZmlsdGVyXyguZG90cyA9IHBhc3RlMCh2YXJ0bXAsIiA+IDAiKSklPiUjcGFzdGUwKHZhcnRtcCwiIT0tOTkiKSklPiUKICAgICAgICAgICAgICAgbXV0YXRlKAogICAgICAgICAgICAgICAgIG1lc2RpYT1hcy5mYWN0b3IoYXMuY2hhcmFjdGVyLm51bWVyaWNfdmVyc2lvbihyb3VuZChtZXNkaWEsMikpKSwKICAgICAgICAgICAgICAgICBSZWdpb249YXMuZmFjdG9yKFJlZ2lvbikKICAgICAgICAgICAgICAgKSU+JQogICAgICAgICAgICAgICBnYXRoZXIobWV0cmljYSxjaWZyYXMsLVJlZ2lvbiwtbWVzZGlhKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID49IDAiKSksI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpLCAKICAgICAgICAgICAgIGFlcyh4PW1lc2RpYSxjb2xvdXI9bWV0cmljYSxncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSAiTcOpdHJpY2FzIE5hY2lvbmFsZXMgcG9yIGTDrWEiKQopCmBgYAoKCiMjIENvbmZpcm1hZG9zIHZzIEhvc3BpdGFsaXphZG9zLCBSZWN1cGVyYWRvcywgQ3VpZGFkb3MgSW50ZW5zaXZvcywgRmFsbGVjaWRvcwoKYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXBfeDwtIkNvbmZpcm1hZG9zRXN0aW1hZG9zIgp2YXJ0bXA8LSJjaWZyYXMiCmdnMDA8LWdncGxvdChhbGxfZ2F0aGVyMDIlPiUKICAgICAgICAgICAgICAgc2VsZWN0KC1UT1RBTEVTLC1zdGFydHNfd2l0aCgidGFzYV8iKSwtc3RhcnRzX3dpdGgoImdhcF8iKSklPiUKICAgICAgICAgICAgICAgZmlsdGVyKFJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICAjIGZpbHRlcl8oLmRvdHMgPSBwYXN0ZTAodmFydG1wLCIgPiAwIikpJT4lI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpJT4lCiAgICAgICAgICAgICAgIG11dGF0ZSgKICAgICAgICAgICAgICAgICBtZXNkaWE9YXMuZmFjdG9yKGFzLmNoYXJhY3Rlci5udW1lcmljX3ZlcnNpb24ocm91bmQobWVzZGlhLDIpKSksCiAgICAgICAgICAgICAgICAgUmVnaW9uPWFzLmZhY3RvcihSZWdpb24pCiAgICAgICAgICAgICAgICklPiUKICAgICAgICAgICAgICAgZ2F0aGVyKG1ldHJpY2EsY2lmcmFzLC1vbmVfb2YoYygiUmVnaW9uIiwibWVzZGlhIix2YXJ0bXBfeCkpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID49IDAiKSksI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpLCAKICAgICAgICAgICAgIGFlcyhjb2xvdXI9bWV0cmljYSxncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fcG9pbnQoYWVzX3N0cmluZyh4PXZhcnRtcF94LHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSAiQ29uZmlybWFkb3MgKGVzdGltYWRvcykgdnMgbGFzIG90cmFzIE3DqXRyaWNhcyBOYWNpb25hbGVzIikKKQpgYGAKLSBEZSBtYW5lcmEgZ2VuZXJhbCwgcGFyZWNpZXJhIHF1ZSBhIG1lZGlkYSBxdWUgc2UgaGEgZGlzcGFyYWRvIGxhIGNhbnRpZGFkIGRlICoqQ29uZmlybWFkb3MqKiwgbG9zIGluZGljYWRvcmVzIHF1ZSBtw6FzIHLDoXBpZG8gY3JlY2VuIHNvbiBsb3MgKipIb3NwaXRhbGl6YWRvcyoqICYgKipSZWN1cGVyYWRvcyoqCgotIFVuYSBpbnRlcnByZXRhY2nDs24gZGUgbG8gYW50ZXJpb3IsIHBvZHLDrWEgc2VyIHF1ZSwgYSBuaXZlbCBOYWNpb25hbCwgZWwgaGVjaG8gZGUgcXVlIG5vIGhheWEgdGFudGEgY2VyY2Fuw61hIGVudHJlIGVzYXMgbcOpdHJpY2FzIHkgbGFzIGRlIEZhbGxlY2lkb3MsIHBvZHJpYSBzZXIgdW4gYnVlbiBpbmRpY2Fkb3IsIGFsIG1lbm9zIGVuIHTDqXJtaW5vcyBhYnNvbHV0b3MgeSB5YSBmYWx0YXLDoSB2ZXIgcG9yIFJlZ2nDs24geSBlbiB0w6lybWlub3MgcmVsYXRpdm9zCgojIFBvciBSZWdpw7NuIHsudGFic2V0fQoKIyMgQ29uZmlybWFkb3MgdnMgSG9zcGl0YWxpemFkb3MsIFJlY3VwZXJhZG9zLCBDdWlkYWRvcyBJbnRlbnNpdm9zLCBGYWxsZWNpZG9zCmBgYHtyLGZpZy53aWR0aD0xMCxmaWcuaGVpZ2h0PTEwLGZpZy5hbGlnbj0nbGVmdCd9CnZhcnRtcF94PC0iQ29uZmlybWFkb3NFc3RpbWFkb3MiCnZhcnRtcDwtImNpZnJhcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBzZWxlY3QoLVRPVEFMRVMsLXN0YXJ0c193aXRoKCJ0YXNhXyIpLC1zdGFydHNfd2l0aCgiZ2FwXyIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICByZW5hbWUoUmVnaW9uMDA9UmVnaW9uKSU+JQogICAgICAgICAgICAgICBsZWZ0X2pvaW4oCiAgICAgICAgICAgICAgICAgYWxsX2dhdGhlcjAyX3BvYmxubCU+JQogICAgICAgICAgICAgICAgICAgc2VsZWN0KFJlZ2lvbixSZWdpb24wMCkKICAgICAgICAgICAgICAgKSU+JQogICAgICAgICAgICAgICAjIGZpbHRlcl8oLmRvdHMgPSBwYXN0ZTAodmFydG1wLCIgPiAwIikpJT4lI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpJT4lCiAgICAgICAgICAgICAgIG11dGF0ZSgKICAgICAgICAgICAgICAgICBtZXNkaWE9YXMuZmFjdG9yKGFzLmNoYXJhY3Rlci5udW1lcmljX3ZlcnNpb24ocm91bmQobWVzZGlhLDIpKSksCiAgICAgICAgICAgICAgICAgUmVnaW9uPWFzLmZhY3RvcihSZWdpb24pCiAgICAgICAgICAgICAgICklPiUKICAgICAgICAgICAgICAgZ2F0aGVyKG1ldHJpY2EsY2lmcmFzLC1vbmVfb2YoYygiUmVnaW9uMDAiLCJSZWdpb24iLCJtZXNkaWEiLHZhcnRtcF94KSkpJT4lCiAgICAgICAgICAgICAgIGZpbHRlcl8oLmRvdHMgPSBwYXN0ZTAodmFydG1wLCIgPj0gMCIpKSwjcGFzdGUwKHZhcnRtcCwiIT0tOTkiKSksIAogICAgICAgICAgICAgYWVzKGNvbG91cj1tZXRyaWNhLGdyb3VwPTEpKSArCiAgZmFjZXRfd3JhcCh+UmVnaW9uLHNjYWxlcyA9ICJmcmVlIixucm93ID0gNCkgKwogIHRoZW1lKHN0cmlwLmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksIHN0cmlwLnBsYWNlbWVudCA9ICJvdXRzaWRlIikKIyBwcmludCgKZ2dwbG90bHkoCiAgICBnZzAwICsKICAgICAgZ2VvbV9wb2ludChhZXNfc3RyaW5nKHg9dmFydG1wX3gseT12YXJ0bXApKSArIAogICAgICB0aGVtZV92b2lkKCkgKyB0aGVtZShsZWdlbmQucG9zaXRpb249Im5vbmUiKSsKICAgICAgbGFicyh0aXRsZSA9ICJDb25maXJtYWRvcyAoZXN0aW1hZG9zKSB2cyBsYXMgb3RyYXMgTcOpdHJpY2FzIHBvciBSZWdpw7NuIikKICAgICAgIyB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCBoanVzdCA9IDEpKQopCiMgKQpgYGAKCi0gQSBuaXZlbCBOYWNpb25hbCwgaGFiw61hbW9zIHZpc3RvIHF1ZSwgY29uZm9ybWUgY3JlY8OtYW4gbG9zICoqQ29uZmlybWFkb3MqKiwgbG9zICoqSG9zcGl0YWxpemFkb3MqKiAmIGxvcyAqKlJlY3VwZXJhZG9zKiogZXN0YWJhbiBwcsOhY3RpY2FtZW50ZSBhbCBtaXNtbyBuaXZlbCwgYXVucXVlIGxpZ8OpcmFtZW50ZSBzdXBlcmlvciBlbCBwcmltZXJvCgotIFNpbiBlbWJhcmdvLCBlcyBpbnRlcmVzYW50ZSB2ZXIsIGPDs21vIHBvciBSZWdpw7NuLCBsb3MgY29tcG9ydGFtaWVudG9zIHZhcsOtYW4gZGUgdmV6IGVuIHZlegoKLSBQb3IgZWplbXBsbywgZW4gYE1hZHJpZGAsIGxhICoqdGVyY2VyYSBSZWdpw7NuIG3DoXMgcG9ibGFkYSoqLCBlc3RvIHNlIHJldmllcnRlLCBlcyBkZWNpciwgbGEgY2FudGlkYWQgZGUgKipIb3NwaXRhbGl6YWRvcyoqIHBhcmVjZSBzZXIgc2lnbmlmaWNhdGl2YW1lbnRlICoqaW5mZXJpb3IqKiBhIGxhIGRlICoqUmVjdXBlcmFkb3MqKiBjb25mb3JtZSBhdW1lbnRhbiBsYXMgY2FudGlkYWRlcyBkZSAqKkluZmVjdGFkb3MqKgoKIyMgQ29uZmlybWFkb3MgcG9yIGTDrGEgJiBwb3IgUmVnacOzbiAKYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXA8LSJDb25maXJtYWRvc0VzdGltYWRvcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID4gMCIpKSU+JSNwYXN0ZTAodmFydG1wLCIhPS05OSIpKSU+JQogICAgICAgICAgICAgICBtdXRhdGUoCiAgICAgICAgICAgICAgICAgbWVzZGlhPWFzLmZhY3Rvcihhcy5jaGFyYWN0ZXIubnVtZXJpY192ZXJzaW9uKHJvdW5kKG1lc2RpYSwyKSkpLAogICAgICAgICAgICAgICAgIFJlZ2lvbj1hcy5mYWN0b3IoUmVnaW9uKQogICAgICAgICAgICAgICApLCBhZXMoeD1tZXNkaWEsY29sb3VyPVJlZ2lvbixncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSBwYXN0ZTAodmFydG1wLCIgcG9yIGTDrWEgJiBwb3IgUmVnacOzbiIpKQopCmBgYAoKLSBFbiBnZW5lcmFsLCAqKmNvbXBvcnRhbWllbnRvcyBtdXkgcGFyZWNpZG9zKiogZW50cmUgbGFzIHJlZ2lvbmVzLCBzaWVuZG8gKipgTWFkcmlkYCoqIGxhIFJlZ2nDs24gY29uIG3DoXMgaW5mZWN0YWRvcyBoYXN0YSB1biBwdW50byBkZSAqKjc4NSw3NDEqKiBjYXNvcyAqdnMqIGVsIHNlZ3VuZG8gbHVnYXIgcXVlIGxvIHRpZW5lICoqYENhdGFsdcOxYWAqKiBhIHBlc2FyIHF1ZSDDqXN0YSB0aWVuZSBhbCAqKjE2JSoqIGRlIGxhIHBvYmxhY2nDs24gZW4gY29tcGFyYWNpw7NuIGNvbiBlbCAqKjE0JSoqIHF1ZSByZXByZXNlbnRhIGxhIHF1ZSB0aWVuZSBhIGxhIGNhcGl0YWwgZGVsIHBhw61zLgoKIyMgSG9zcGl0YWxpemFkb3MgcG9yIGTDrGEgJiBwb3IgUmVnacOzbiAKYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXA8LSJIb3NwaXRhbGl6YWRvcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID4gMCIpKSU+JSNwYXN0ZTAodmFydG1wLCIhPS05OSIpKSU+JQogICAgICAgICAgICAgICBtdXRhdGUoCiAgICAgICAgICAgICAgICAgbWVzZGlhPWFzLmZhY3Rvcihhcy5jaGFyYWN0ZXIubnVtZXJpY192ZXJzaW9uKHJvdW5kKG1lc2RpYSwyKSkpLAogICAgICAgICAgICAgICAgIFJlZ2lvbj1hcy5mYWN0b3IoUmVnaW9uKQogICAgICAgICAgICAgICApLCBhZXMoeD1tZXNkaWEsY29sb3VyPVJlZ2lvbixncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSBwYXN0ZTAodmFydG1wLCIgcG9yIGTDrWEgJiBwb3IgUmVnacOzbiIpKQopCmBgYAoKCi0gRW4gZ2VuZXJhbCwgKipjb21wb3J0YW1pZW50b3MgbXV5IHBhcmVjaWRvcyoqIGVudHJlIGxhcyByZWdpb25lcywgKipleGNlcHRvIGBNYWRyaWRgKiouCgotIFBhcmEgZWwgKiozMCBkZSBtYXJ6byoqLCBNYWRyaWQgYWxlbnTDsyBlbCBhdW1lbnRvIGVuIHN1cyBob3NwaXRhbGl6YWRvcywgYWwgcHVudG8gcXVlIHBhcmEgZWwgKioxIGRlIGFicmlsKiogZW1wZXrDsyB1biAqKmRlc2NlbnNvIGltcG9ydGFudGUqKgoKLSBFc3RvIGNvbnRyYXN0YSBjb24gZWwgY29tcG9ydGFtaWVudG8gZW4gKipDYXRhbHXDsWEqKiwgZG9uZGUgZXMgZXZpZGVudGUgZWwgYWNlbGVyYW1pZW50byBlbiBsYSBjYW50aWRhZCBkZSBob3NwaXRhbHphZG9zLCBhIHBlc2FyIHF1ZSAqKmBNYWRyaWRgKiogdGllbmUgKm3DoXMgY2FudGlkYWQgZGUgaW5mZWN0YWRvcyogeSAqbWVub3MgcG9ibGFjacOzbioKCiMjIFJlY3VwZXJhZG9zIHBvciBkw6xhICYgcG9yIFJlZ2nDs24KYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXA8LSJSZWN1cGVyYWRvcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID4gMCIpKSU+JSNwYXN0ZTAodmFydG1wLCIhPS05OSIpKSU+JQogICAgICAgICAgICAgICBtdXRhdGUoCiAgICAgICAgICAgICAgICAgbWVzZGlhPWFzLmZhY3Rvcihhcy5jaGFyYWN0ZXIubnVtZXJpY192ZXJzaW9uKHJvdW5kKG1lc2RpYSwyKSkpLAogICAgICAgICAgICAgICAgIFJlZ2lvbj1hcy5mYWN0b3IoUmVnaW9uKQogICAgICAgICAgICAgICApLCBhZXMoeD1tZXNkaWEsY29sb3VyPVJlZ2lvbixncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSBwYXN0ZTAodmFydG1wLCIgcG9yIGTDrWEgJiBwb3IgUmVnacOzbiIpKQopCmBgYAoKCi0gRW4gZ2VuZXJhbCwgKipjb21wb3J0YW1pZW50b3MgbXV5IHBhcmVjaWRvcyoqIGVudHJlIGxhcyByZWdpb25lcywgc2llbmRvICoqYE1hZHJpZGAqKiBsYSBSZWdpw7NuIGNvbiBtw6FzIHJlY3VwZXJhZG9zLCBwcm9iYWJsZW50ZSBmcnV0byBkZSB0ZW5lciB0YW1iacOpbiBtw6FzIGluZmVjdGFkb3MKCiMjIEN1aWRhZG9zIEludGVuc2l2b3MgcG9yIGTDrGEgJiBwb3IgUmVnacOzbgpgYGB7cixmaWcud2lkdGg9MTAsZmlnLmhlaWdodD03LGZpZy5hbGlnbj0nbGVmdCd9CnZhcnRtcDwtIkN1aWRhZG9zSW50ZW5zaXZvcyIKZ2cwMDwtZ2dwbG90KGFsbF9nYXRoZXIwMiU+JQogICAgICAgICAgICAgICBmaWx0ZXIoIVJlZ2lvbiVpbiVjKCJOYWNpb25hbCIpKSU+JQogICAgICAgICAgICAgICBmaWx0ZXJfKC5kb3RzID0gcGFzdGUwKHZhcnRtcCwiID4gMCIpKSU+JSNwYXN0ZTAodmFydG1wLCIhPS05OSIpKSU+JQogICAgICAgICAgICAgICBtdXRhdGUoCiAgICAgICAgICAgICAgICAgbWVzZGlhPWFzLmZhY3Rvcihhcy5jaGFyYWN0ZXIubnVtZXJpY192ZXJzaW9uKHJvdW5kKG1lc2RpYSwyKSkpLAogICAgICAgICAgICAgICAgIFJlZ2lvbj1hcy5mYWN0b3IoUmVnaW9uKQogICAgICAgICAgICAgICApLCBhZXMoeD1tZXNkaWEsY29sb3VyPVJlZ2lvbixncm91cD0xKSkKCmdncGxvdGx5KAogICAgZ2cwMCArCiAgICAgIGdlb21fbGluZShhZXNfc3RyaW5nKHk9dmFydG1wKSkgKyAKICAgICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkrCiAgICAgIGxhYnModGl0bGUgPSBwYXN0ZTAodmFydG1wLCIgcG9yIGTDrWEgJiBwb3IgUmVnacOzbiIpKQopCmBgYAoKLSBDb21wb3J0YW1pZW50byBtdXkgcGFyZWNpZG8gYWwgZGUgKipIb3NwaXRhbGl6YWRvcyoqLCBsbyBjdWFsIGhhY2Ugc2VudGlkbyBwdWVzIGxvcyBxdWUgbGxlZ2FuIGEgKipDdWlkYWRpcyBJbnRlbnNpdm9zKiogdHV2aWVyb24gcXVlIGhhYmVyIHBhc2FkbyBhbnRlcyBwb3Igc2VlciAqaG9zcGl0YWxpemFkb3MqCgojIyBGYWxsZWNpZG9zIHBvciBkw6xhICYgcG9yIFJlZ2nDs24KYGBge3IsZmlnLndpZHRoPTEwLGZpZy5oZWlnaHQ9NyxmaWcuYWxpZ249J2xlZnQnfQp2YXJ0bXA8LSJGYWxsZWNpZG9zIgpnZzAwPC1nZ3Bsb3QoYWxsX2dhdGhlcjAyJT4lCiAgICAgICAgICAgICAgIGZpbHRlcighUmVnaW9uJWluJWMoIk5hY2lvbmFsIikpJT4lCiAgICAgICAgICAgICAgIGZpbHRlcl8oLmRvdHMgPSBwYXN0ZTAodmFydG1wLCIgPiAwIikpJT4lI3Bhc3RlMCh2YXJ0bXAsIiE9LTk5IikpJT4lCiAgICAgICAgICAgICAgIG11dGF0ZSgKICAgICAgICAgICAgICAgICBtZXNkaWE9YXMuZmFjdG9yKGFzLmNoYXJhY3Rlci5udW1lcmljX3ZlcnNpb24ocm91bmQobWVzZGlhLDIpKSksCiAgICAgICAgICAgICAgICAgUmVnaW9uPWFzLmZhY3RvcihSZWdpb24pCiAgICAgICAgICAgICAgICksIGFlcyh4PW1lc2RpYSxjb2xvdXI9UmVnaW9uLGdyb3VwPTEpKQoKZ2dwbG90bHkoCiAgICBnZzAwICsKICAgICAgZ2VvbV9saW5lKGFlc19zdHJpbmcoeT12YXJ0bXApKSArIAogICAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCBoanVzdCA9IDEpKSsKICAgICAgbGFicyh0aXRsZSA9IHBhc3RlMCh2YXJ0bXAsIiBwb3IgZMOtYSAmIHBvciBSZWdpw7NuIikpCikKYGBgCgotIEVuIGdlbmVyYWwsICoqY29tcG9ydGFtaWVudG9zIG11eSBwYXJlY2lkb3MqKiBlbnRyZSBsYXMgcmVnaW9uZXMgeSB0YW1iacOpbiBhbCBvYnNlcnZhZG8gZW4gbG9zICoqUmVjdXBlcmFkb3MqKiwgc2llbmRvICoqYE1hZHJpZGAqKiBsYSBSZWdpw7NuIHF1ZSBwcmVzZW50YSBtw6FzIGNhc29zIGRlIHBlcnNvbmFzIHF1ZSBkZWdyYWNpYWRhbWVudGUgaGFuIHBlcmRpZG8gbGEgdmlkYSwgcHJvYmFibGVtZW50ZSBmcnV0byB0YW1iacOpbiBkZSB0ZW5lciBtw6FzIGluZmVjdGFkb3M=